/*!
\copyright  Copyright (c) 2023 Qualcomm Technologies International, Ltd.
            All Rights Reserved.
            Qualcomm Technologies International, Ltd. Confidential and Proprietary.
\file
\brief      Sync start A2dp - utility functions
 
Utilities that are not relevant for main code flow.
 
*/

#ifndef SYNC_START_A2DP_UTILS_H_
#define SYNC_START_A2DP_UTILS_H_

#include <sync_start_a2dp_types.h>

#include <rtime.h>
#include <source.h>
#include <message.h>
#include <vm.h>


/*@{*/

Task SyncStartA2dp_GetTask(void);

void SyncStartA2dp_ScheduleStartMessage(Source source);
bool SyncStartA2dp_CancelStartMessage(void);

void SyncStartA2dp_SubscribeForMessageMoreData(Source source, Task task);
void SyncStartA2dp_UnsubscribeFromMessageMoreData(Source source, Task task);

void SyncStartA2dp_ScheduleDataSyncIndTimeoutMessage(sync_start_a2dp_info_t *sync_info);

void SyncStartA2dp_ScheduleUnmute(rtime_t time_instant_us, rtime_t delay_us);

void SyncStartA2dp_ScheduleUnmuteTimeout(void);

void SyncStartA2dp_ScheduleQ2qUnmute(sync_start_a2dp_mode_t mode, rtime_t delay_us);

void SyncStartA2dp_SyncCompleted(void);

/*@}*/

#endif /* START_A2DP_UTILS_H_ */
